import os
from typing import Optional


class Settings:
    """应用配置类"""
    
    def __init__(self):
        # API 配置
        self.siliconflow_api_key = os.environ.get("SILICONFLOW_API_KEY", "")
        self.siliconflow_api_base = os.environ.get("SILICONFLOW_API_BASE", "https://api.siliconflow.cn/v1")
        
        # 应用配置
        self.app_name = os.environ.get("APP_NAME", "智能商品推荐助手")
        self.app_version = os.environ.get("APP_VERSION", "1.0.0")
        self.debug = os.environ.get("DEBUG", "false").lower() == "true"
        
        # 模型配置
        self.default_model = os.environ.get("DEFAULT_MODEL", "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B")
        self.default_temperature = float(os.environ.get("DEFAULT_TEMPERATURE", "0.7"))
        self.default_max_tokens = int(os.environ.get("DEFAULT_MAX_TOKENS", "2048"))
        self.default_timeout = int(os.environ.get("DEFAULT_TIMEOUT", "60"))
        
        # 存储配置
        self.conversation_history_limit = int(os.environ.get("CONVERSATION_HISTORY_LIMIT", "50"))


# 全局设置实例
settings = Settings()


def validate_settings():
    """验证配置是否完整"""
    if not settings.siliconflow_api_key:
        raise ValueError("SILICONFLOW_API_KEY 未设置，请在 .env 文件中配置")
    
    if not settings.siliconflow_api_base:
        raise ValueError("SILICONFLOW_API_BASE 未设置，请在 .env 文件中配置")
    
    return True